/*
 *
 *
 */

#ifndef GKT_FACTORY_RESET_H
#define GKT_FACTORY_RESET_H

#include "gkt_types.h"

#ifdef __cplusplus
extern "C" {
#endif

#if defined(GKT_CONFIG_FACTORY_RESET_ENABLE) && GKT_CONFIG_FACTORY_RESET_ENABLE \
	&& (defined(GKT_CONFIG_FACTORY_RESET_WKIO_PIN) || defined(GKT_CONFIG_FACTORY_RESET_GPIO_PIN))
#define GKT_FACTORY_RESET_INDIVIDUAL_ENABLE	1
#else
#define GKT_FACTORY_RESET_INDIVIDUAL_ENABLE	0
#endif

enum {
	GKT_FACTORY_RESET_TYPE_INDIVIDUAL = 0,
	GKT_FACTORY_RESET_TYPE_COMBINED,
	GKT_FACTORY_RESET_TYPE_MAX
};

typedef void (*gkt_factory_reset_notify)(int type, int detect);

#if GKT_FACTORY_RESET_INDIVIDUAL_ENABLE
int gkt_factory_reset_init(void);
int gkt_factory_reset_is_detected(void);
void gkt_factory_reset_register_notify(gkt_factory_reset_notify notify);
#else
#define gkt_factory_reset_is_detected()	0
#endif

#ifdef __cplusplus
}
#endif

#endif	/* GKT_FACTORY_RESET_H */

